package com.dm.cloud.tkmybatis.service;


import com.dm.cloud.core.mode.ResultModel;
import lombok.extern.slf4j.Slf4j;

/**
 * 基础controller
 *
 * @author Administrator
 * @date 2022年 05月13日 13:12:55
 */
@Slf4j
public abstract class BaseController {



    /**
     * 构建成功响应实例
     *
     * @return
     */
    public ResultModel responseSuccess() {
        return new ResultModel(null);
    }


    /**
     * 构建成功响应实例
     *
     * @param data
     * @return
     */
    public <T> ResultModel<T> responseSuccessWithData(T data) {
        return new ResultModel<T>(data);
    }

    /**
     * 构建成功响应实例
     * @param code 响应编码
     * @param data 响应数据
     * @return
     */
    public ResultModel responseSuccessWithData(Integer code, Object data) {
        return ResultModel.success(code,data);
    }

    /**
     * 构建失败响应实例
     *
     * @return
     */
    public ResultModel failure() {
        return ResultModel.serverErr("服务器异常");
    }

    /**
     * 构建失败响应实例
     *
     * @param code 响应编码
     * @param msg 响应信息
     * @return
     */
    public ResultModel failure(Integer code, String... msg) {
        return ResultModel.err(code,String.join("\n",msg));
    }

    /**
     * 构建失败响应实例,包含响应数据
     * @param code 响应编码
     * @param data 响应数据
     * @param msg 响应消息
     * @return
     */
    public ResultModel failureWithData(Integer code, Object data, String... msg) {
        return new ResultModel(code,String.join("\n",msg),data);
    }

}